﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevMedia.Net.Exemplo.MVP.Interfaces;
using DevMedia.Net.Exemplo.MVP.Presenters;
using DevMedia.Net.Exemplo.Model.Entities;

namespace DevMedia.Net.Exemplo.WinForms
{
	public partial class Form1 : Form, IUsuarioCadastroPassiveView
	{
		private long idUsuarioSelecionado = 0;
		private UsuarioCadastroPresenterPassiveView presenter = null;

		public Form1()
		{
			InitializeComponent();
			presenter = new UsuarioCadastroPresenterPassiveView( this );
		}

		#region IUsuarioCadastroPassiveView Members

		public void SetListaUsuarioCadastrado( IList<Model.Entities.Usuario> usuarios )
		{
			dgvUsuarios.DataSource = null;
			dgvUsuarios.DataSource = usuarios;
			dgvUsuarios.Refresh();
		}

		public void LimparControles()
		{
			txtLogin.Clear();
			txtNome.Clear();
			txtSenha.Clear();
		}

		#endregion

		private void Form1_Load( object sender, EventArgs e )
		{

		}

		#region Eventos
		private void btnSalvarNovo_Click( object sender, EventArgs e )
		{
			presenter.Salvar();
		}

		private void btnAtualizar_Click( object sender, EventArgs e )
		{
			presenter.Atualiza();
		}

		private void btnDeletar_Click( object sender, EventArgs e )
		{
			presenter.Deletar();
		}

		private void btnCancelar_Click( object sender, EventArgs e )
		{
			LimparControles();
			idUsuarioSelecionado = 0;
		}

		public long GetIdUsuarioSelecionado()
		{
			return idUsuarioSelecionado;
		}

		public Model.Entities.Usuario GetUsuario()
		{
			Usuario usuario = new Usuario();
			usuario.Login = txtLogin.Text;
			usuario.Nome = txtNome.Text;
			usuario.Senha = txtSenha.Text;
			return usuario;
		}

		public void SetUsuario( Model.Entities.Usuario value )
		{
			txtLogin.Text = value.Login;
			txtNome.Text = value.Nome;
			txtSenha.Text = value.Senha;
		}

		#endregion

		private void dgvUsuarios_CellClick( object sender, DataGridViewCellEventArgs e )
		{
			idUsuarioSelecionado = long.Parse( dgvUsuarios.SelectedRows[ 0 ].Cells[ 0 ].Value.ToString() );
			presenter.ExibirUsuarioSelecionado();
		}

	}
}
